home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 1
/
SPACE - Library 1 - Volume 1.iso
/
apps
/
408
/
mupfel.gen
< prev
next >
Wrap
Text File
|
1990-07-04
|
41KB
|
718 lines
Mupfel Genesis
Ver. Dat.
0.00 - 0.02 Lost in the mists of time....
0.03 - 12.10. Erste halbwegs vernünftige Version
0.04 - 14.10. Speicherfresserfehler in TC's fopen() umgangen.
15.10. Bug in access() ausgebaut.
Neues Kommando "wc".
Kommandozeilen, deren 1. non-blank # ist, sind Kommentare.
Hack fuer Ctrl-S/Ctrl-Q in outchar().
Internes Namens-Chaos etwas gemildert.
16.10. $xArg wird nach Programmausführung ganz gelöscht.
Bei .\cmd wird jetzt richtig gesucht
Neues Kommando "file" angefangen. Muss verbessert werden.
18.10. "cd" erweitert um $CDPATH
Parameterübergabe bei system()/shellcall() jetzt über
den Stack
22.10. date: Es ist nicht mehr immer Sonntag!!!
23.10. Falsche Ausgabe bei z.B. "info x:" ausgebaut
Interne Variablen $?, $0..$9, screensave, noclobber etc.
Neue Kommandos "set" und "unset" dafür.
I/O Redirection erweitert um >! und >>! für override von
noclobber.
Für Batchfiles werden $0..$9 und $# auf einem Stack ge-
speichert.
Retten von Textbildschirm wenn GEM-Programme gestartet
werden, wenn screensave einen Wert hat.
Bei Start von GEM-Programmen wird wind_set(0,WF_NEWDESK,...)
ausgeführt und per menu_bar() der Programmname in die Menü-
zeile geschrieben.
Bei "whereis cmd" wird der Hit-Counter in der Hashtabelle
nicht mehr inkrementiert.
0.05 - 27.10. In $SUFFIX stehen die Extensions von ausführbaren Programmen,
default für $SUFFIX ist "PRG".
Namensregeln für Env-Variablen verbessert ($1.c ging nicht).
Beim Start von GEM-Programmen wird die Maus als Busy Bee ein-
geschaltet (wie beim Desktop).
28.10. Fehler bei Batchfiles behoben: Programme konnten daraus nur
ein einziges Mal gestartet werden.
Default "." für $PATH eingebaut.
29.10. fkey f9 ... geht jetzt. f11-f20 anstatt sf1-sf10 auch.
mv macht bei unterschiedlichen Laufwerken erst eine Kopie und
löscht dann die Quelle.
Kommando "unset" wieder entfernt. "set" funktioniert
jetzt analog zu "setenv", d.h. "set var" löscht den
Wert von var.
30.10. "wc" zählt jetzt mit longs anstatt ints.
Wenn eine Kommandozeile mit dem letzten History-Eintrag
identisch ist, wird sie nicht kopiert.
Die momentane Eingabezeile kann beim Durchscrollen der
History auch wieder zurückgeholt werden.
Neues Kommando "label". (NOTE: Geht nicht mit der momentanen
Version von TOS 1.4).
"date" setzt bei altem ROM-TOS jetzt auch die GEMDOS-Uhr.
Mupfel läuft wieder auf dem altem TOS.....
Neues Kommando "du".
I/O Redirection auf AUX:, PRN: etc geht wieder.
cp() und savescreen() holen Speicher jetzt direkt mit
Malloc()/Mfree() (wegen Problemen bei system()-Aufrufen).
Versionsnummer auf 0.06 geändert.
0.06 - 31.10. Die Ausgaben der internen Kommandos lassen sich jetzt
mit Control-C abbrechen.
"du" zeigt wirklich nur noch Directories an, aber das
auch beim ersten Versuch.
25.11. (Hoffentlich) Bug beim Aufruf per system() beseitigt.
26.11. Neue Option -d (datekeep) für cp. Bei mv automatisch an.
04.12. system()-Bug endgültig gefixt. Puh!
malloc() etc. für Debuggingzwecke erweitert.
0.07 - 06.12. Versionsnummer auf 0.07 geändert
Once again: Mupfel (und Kindprozesse) tut's wieder mit altem
TOS!
Externe Programme mit mehr als 128 Zeichen Argumenten werden
nicht mehr gestartet.
09.12. Werte im Environment dürfen kein '=' enthalten.
$<PRGNAME>_PAR eingebaut (siehe Doku).
I/O Redirection von Kanal 2 ist mit "2>" möglich. Weitere
Möglichkeiten (>>, >>!) wie gehabt.
I/O Redirection geht jetzt ganz! Wer hätte geglaubt, daß man
den bereits ge-Fclose-ten Handle nochmal Fclosen muss!! 8-(
10.12. Mit Shift-Leftarrow und Shift-Rightarrow kann man jetzt
zum Zeilenende bzw. Zeilenanfang springen.
Bei Kommandozeilen > 124 Zeichen werden Programme doch wieder
gestartet, die Argumente aber nur per xArg übergeben.
Die Parametervariable heisst jetzt genauso wie das Programm,
nur der Punkt wird durch '_' ersetzt, also z.B. $TC_PRG oder
$GOME_TTP.
Neue Kommandos "pushd" und "popd".
11.12. BSS erheblich verkleinert indem jetzt der Platz für die
History, die Funktionstasten und die Batchfileargumente
dynamisch angelegt werden.
Zillions of Bugs in pushd und popd gekillt.
Rangechecks beim Datumsetzen eingebaut.
14.12. Neue Option -r (rekursiv) für cp. "cp -r dir1 dir2"
kopiert den gesamten Subtree unter dir1 nach dir2.
16.12. Nichtbelegte F-Keys können wieder gefahrlos gedrückt werden.
18.12. Argumentlisten können jetzt 512 anstatt 128 Tokens enthalten.
Mit "Control-Delete" wird von der aktuellen Cursorposition
bis zum Zeilenende gelöscht.
20.12. "cp a:xxx.dat ." tut jetzt was man erwartet.
Lesefehler beim Kopieren werden jetzt richtig behandelt.
Batchfiles müssen jetzt .MUP heissen.
Versionsnummer auf 0.08 geändert.
0.08 - 21.12. MUPFEL.MUP darf jetzt fehlen ohne daß es später zu Problemen
kommt.
24.12. ls und Konsorten können mit Ctrl-C abgebrochen werden.
Bildschirmausgabe auf RAWCON umgestellt.
26.12. RAWCON war nix. Wieder auf "normale" Ausgabe geändert.
Für GEM-Programme: Der Programmname beim Start wird zentriert.
28.12. Die Hashtabelle kann jetzt beliebig gross werden.
Beim Start von z.B. \T_MAIL.PRG wird jetzt korrekt "cd \"
ausgeführt. §$%&-GullyDOS! Warum ist Dsetpath(""); ok? 8-(
Output-Redirection wird jetzt vor Wiedereinschalten des
Cursors wieder rückgängig gemacht.
29.12. cd \xxx über $CDPATH geht jetzt.
30.12. Das Environment wird jetzt immer alphabetisch sortiert.
Schon länger drin: Wenn Mupfel mit Argumenten gestartet
wird, wird das erste als Name des Autoexec-Files anstatt
MUPFEL.MUP genommen.
Ebenfalls schon länger: Kommando "dirs" um den pushd/popd-
Stack anzuzeigen.
Cursorbewegung im Lineeditor geht jetzt richtig am rechten
Bildschirmrand.
Bug beim Historyscrollen gefixt.
Versionsnummer auf 0.09 geändert.
0.09 - 31.12. Länge der Eingabezeile von 128 auf 256 Zeichen geändert.
Geschwindigkeitsverbesserung beim Einfügen und Löschen.
Cursor-Flackern beseitigt.
MUPFEL.DOC ergänzt (Zeileneditor, xArg, system()).
"du ." tut's jetzt.
Bösen Bock in wc gekillt.
04.01. Bug beim Zeicheneinfügen in der letzten Zeile gekillt.
05.01. Bei cd mit Argument ist nur noch genau eins erlaubt.
Überflüssigen clearscreen() beim Ende von GEM-Programmen, die
per system() gestartet wurden entfernt.
pushd ohne Argumente pusht ".", mehr als ein Argument ist
nicht erlaubt.
06.01. Bug in screensave() gekillt.
07.01. Neue Wildcardexpansion eingebaut. Jetzt sind auch Wildcards
wie "c:\f*\*.prg" möglich. Illegale oder unsinnige Wildcards
wie z.B. "**.ext" oder "*a?.*t" werden auf sinvolle Angaben
(also "*.ext" oder "*.*") reduziert.
Interne Kommandos (bis auf tree und echo) dürfen nur noch mit
expandierten Wildcards gestartet werden.
Versionsnummer auf 0.10 geändert.
0.10 - 08.01. Typo in cmdhelp() korrigiert.
Neue Funktionen im Zeileneditor: Ctrl-X vertauscht das Zeichen
unter dem Curor mit dem rechts davon, Ctrl-C wandelt Gross-
in Kleinbuchstaben und umgekehrt.
Link-Reihenfolge wegen 16-Bit relativen Referenzen auf free()
geändert.
09.01. Workaround für obskuren GEMDOS-Bug in "cd" eingebaut.
Die Wildcardexpansion generiert die Tokens jetzt in Klein-
buchstaben.
cp und mv brechen nach dem ersten Fehler ab.
Neue Option -v (verbose) cp, mv und rm: Der aktuelle Datei-
name wird angezeigt. Dadurch sind diese Funktionen jetzt auch
mit Control-C abbrechbar.
Neu für $PS1: "P" zeigt das aktuelle Dir. in Gross-, "p" in
Kleinschrift an.
Neue interne Variable "history". Kann im Autoexec-File (nur
dort!) gesetzt werden um die Anzahl der History-Zeilen fest-
zulegen. Default ist 20.
Zeileneditor: Ctrl-Rechts/Linkspfeil bewegen den Cursor Wort-
weise.
10.01. Abfrage "continue" bei "cp -c" auf "overwrite" geändert.
Bug bei "cp -c" gekillt (Files wurden nicht geschlossen)
Versionsnummer auf 0.11 geändert.
0.11 - 12.01. Control-S / Control-Q geht wieder.
UNIX-mäßige Wildcards eingebaut. Doku geändert.
"fkey" und "setenv" gehen auch mit unexpandierten Wild-
cards.
Mit "|" als letztem Zeichen eines F-Tasten-Strings wird
automatisch CR ausgelöst.
13.01. Auf Wunsch werden Argumente für Programme jetzt auch mit
shel_write übergeben. Da shel_write selber nichts startet,
sondern dies erst vom AES nach Pterm erledigt wird, wird
nach Programmende "mupfel -q" als zu startendes Programm
eingetragen. Der Trick: "mupfel -q" macht sofort exit(0);
Einstellbar über neues Flag in $PRG_EXT: "S:[YN]" schaltet
shel_write an und aus. Default für GEM: Y, für TOS: N.
14.01. "cp" holt sich zum Kopieren sämtlichen freien Speicher (abzgl.
dem Wert aus der neuen internen Variable "keepfree". Default
für keepfree ist 8K.
Ausgabe bei -v geändert (cp,mv,rm).
Bösen Bock beim Löschen der Hashtabelle gekillt.
$PATH darf jetzt länger als 64 Zeichen werden.
15.01. Nach GEM-Programmen wird jetzt (bei TOS 1.4 und höher)
wind_new() ausgeführt. (Nicht bei system()-Aufruf)
cp und mv tun's jetzt auch als CP,cP,Cp,MV,Mv und mV.
Neue Option -d für touch. Damit kann im gleichen Format
wie bei date das Datum angegeben werden, auf das die
Files zu setzen sind.
16.01. Wenn GEM-Programme per shel_write andere Programme starten
werden diese jetzt von Mupfel gestartet (getestet mit Easy-
Draw und Output).
Beim Programmende wird zuerst gecheckt, ob $HOME\exit.prg
existiert, wenn ja wird das anstatt "$SHELL -q" als auszu-
führendes Programm mit shel_write eingetragen.
Die Escape-Sequenzen bei echo tun's jetzt (wie dokumentiert)
mit \ als Lead-In.
Versionsnummer auf 0.12 geändert.
0.12 - 20.01. Fehler bei touch ohne Datumsangabe ausgebaut.
Fehler bei shel_write nach system() ausgebaut.
21.01. Die Default-Startparameter können mit den Env-Variablen
$GEMDEFAULT bzw. $TOSDEFAULT festgelegt werden.
Bug beim abwechselnden Start von TOS- und GEM-Programmen
gekillt.
ACHTUNG: Ab heute wird auf Arnd's Wunsch hin die Versions-
nummernvergabe wie folgt geändert: Jede Version erhält noch
eine Releasekennung, die bei jeder kleineren Änderung hoch-
gezählt wird. Das macht es mir einfacher, Fehlermeldungen
zu bewerten. Begonnen wird mit 0.13a.
0.13a 22.01. Bei nicht gequoteten Tokens die mit ~ beginnen wird dieses
Zeichen durch den Namen des aktuellen Directories ersetzt.
Damit kann man jetzt ohne große Mühe Files aus dem aktuellen
Directory an GEM-Programme übergeben, die woanders liegen.
Lead-In-Zeichen bei Echo auf % geändert. \ war keine gute
Idee, weil Filenamen z.B. mit \t beginnen können.....
0.13b 23.01. Schon wieder einen neuen Workaround wegen den Fehlern in
Dsetpath() eingebaut. Das sollte es jetzt aber endgültig
gewesen sein!
Neue Option -f (filetype) für ls. Bei Directories wird hinter
den Namen ein "\" angehängt, bei Programmen (d.h. Files deren
Extender in $SUFFIX auftaucht) ein "*".
24.01. Das Environment insgesamt und jede einzelne Variable dürfen
jetzt beliebig groß werden. Das Environment wird beim Start
mit 2 K angelegt und bei Platznot um jeweils 1 K vergrößert.
Bug bei rm's Fehlermeldungen ausgebaut.
Noch 'nen Bug bei cp -c ausgebaut. Manchmal blieb das Target-
File offen, und GEMDOS *HASST* es wenn man offene Files
löscht....
0.13c 25.01. ls und Konsorten dürfen nicht mehr mit unexpandierten Wild-
cards gestartet werden, da sonst GEMDOS stehenbleiben kann.
(Fsfirst mag Argumente wie "x*\*.c" nicht...)
26.01. Neues Kommando "init" um 1- oder 2seitige Disketten schnell
zu löschen. Dazu werden die Tracks 0 und 1 mit Nullen über-
schrieben und ein neuer Bootsektor geschrieben.
27.01. "info" rechnet jetzt den freien Platz und die Gesamtkapazi-
tät korrekt aus Bytes pro Sektor und Clustergröße aus. Von
der Gesamtkapazität werden noch die beiden nie allozierbaren
Cluster abgezogen.
0.13d 29.01. Externe Programme dürfen system(""); jetzt fehlerlos auf-
rufen.
Bei system()-Aufrufen wird die Maus nicht mehr an- oder aus-
geschaltet.
wind_new() wird nur noch bei (TOS 1.4 && GEM 1.3) aufgerufen.
0.13e 31.01. Leider war der empfohlene Weg auf GEM 1.3 zu testen nicht so
doll. (In _GemParBlk.global[0] steht 0x104!!!). Abfrage
ausgebaut. #include <stdgrumble.julian>
Fehler in delaccwindow() ausgebaut.
0.13f 02.02. Fehler im Pattern-Matcher ausgebaut (Patterns durften nicht
länger als 13 Zeichen werden).
Es ist kein Fehler mehr wenn Programme per shell_write andere
Programme ohne Pfadangabe starten wollen.
03.02. Signum2 und SPRINT tun's jetzt.
0.13e 04.02. Signum2 tat's unter der Venus nicht. Jetzt aber!
0.13f 05.02. Mupfel berechnet jetzt vor und nach jedem Pexec() eine Check-
summe a la TC ("The executed program damaged Mupfel...").
0.13g 11.02. Sonderfall-Test auf GEM 1.04 für wind_new().
Der Programmname beim Start von GEM-Prgs wird jetzt zu Fuss
mit VDI-Funktionen gemalt.
Bei savescreen ist das oberste rechte Zeichen nicht mehr
invers.
0.14a 12.02. Vernünftige Fehlermeldung bei mv wenn die Quelldatei nicht
existiert.
Neues Kommando "rename".
0.14b 18.02. rm intern umgearbeitet (That code was cursed...)
Environment und Interne Variablen können jetzt auch
mit VAR=value gesetzt bzw mit VAR= gelöscht werden.
Neues Kommando "timer".
0.14c 23.02. ~ funktioniert jetzt tokenweise.
24.02. $xArg wird nach Programmausführung wieder aus dem
Environment entfernt.
0.15a 26.02. Nachtschicht bis 3:45 h mit Steve. Ergebnis:
- system() funktioniert jetzt. Früher hat sich kein
Mensch um die Register im aufrufenden Prozess gekümmert, und
außerdem hat Mupfel den Stack des Aufrufers mitbenutzt.
Jetzt werden alle Register bis auf D0 und A7 gerettet und
ein neuer Stack von 8K Größe angelegt.
- Man kann wieder Files mit der Venus kopieren!!!!!!!!!
Nach langem Suchen ist uns endlich klar geworden, daß sich
die Fehler in Dsetpath() nicht umgehen lassen, und deshalb
wird diese blöde Funktion nur noch für Directories auf-
gerufen die wirklich existieren. Das kann man mit Fsfirst
und einer winzigkleinen Routine feststellen, die Programmierung
einer solchen Routine überlassen wir dem Leser als Übungsauf-
gabe.
0.15b 26.02. "mv a b" löscht b nicht mehr, wenn a nicht existiert oder
read-only ist.
27.02. Neues Kommando "alias" angefangen. Die Verwaltung der alias-
Liste funktioniert schon, aber benutzt wird's nirgends.
28.02. $SHELL wird jetzt auch dann richtig besetzt, wenn Mupfel im
Root-Directory liegt.
0.15c 02.03. cp setzt bei der Zieldatei die Attribute auf den Stand der
Quelle.
$SHELL wird jetzt auf den echten Pfadnamen von Mupfel gesetzt,
selbst wenn sie nicht MUPFEL.PRG heisst (shel_read macht's
möglich).
0.15d 03.03. init liefert jetzt einen korrekten Returncode.
0.16a 04.03. "cd ." tut's jetzt auch im Rootdirectory.
Man darf Programme wieder z.b. mit "dir\xy.tos" oder
auch nur "dir\xy" starten.
String bei shel_read fuer $SHELL vergössert, hash-Tabelle
ging kaputt. Von dem String wird auch nur der Filename-Teil
genommen.
0.16b 09.03. Nach system() wird kein unallozierter Speicher mehr freige-
geben.
"timer" gibt jetzt die Zeit mit zwei Nachkommastellen aus.
0.16c 13.03. mv macht jetzt innerhalb eines Laufwerks keine Kopien mehr.
label löscht jetzt das alte Label nicht mehr wenn unter dem
neuen Namen schon ein File oder Directory existiert, außerdem
gibt's jetzt einen vernünftigen Returncode zurück.
Mit "label x: -" kann man jetzt das Label von x: löschen
ohne ein neues zu vergeben.
0.16d 18.03. Während ein internes Kommando läuft ist jetzt Typeahead
möglich. Der Typeaheadbuffer ist 128 Zeichen gross und wird
bei Überlauf stillschweigend weggeworfen. Bei externen Pro-
grammen funktionierts leider nicht, wahrscheinlich weil GEM-
DOS den eigenen Buffer beim Prozesswechsel löscht.
Zwei Texte geändert: Wenn Programme nur mit xArg-Argumenten
gestartet werden, wird darauf explizit hingewiesen. Wenn bei
internen Kommandos unexpandierte Wildcards überbleiben, wird
der erste nicht expandierte Token mit angezeigt (So finde
ich diese Meldung schon fast erträglich).
19.03. Alle Funktionen, die mit verketteten Listen arbeiten (ls,
hash und alias) auf einen gemeinsamen Satz Routinen zur
Listenverwaltung umgestellt.
Batchfiles werden jetzt direkt nach dem Öffnen komplett ein-
gelesen und nicht wie bisher mit fgets zeilenweise (Lösung
für Volkmars Autostart-Problem).
0.16e 23.03. Endlich eine Lösung für die Control-Zeichen im Lineeditor.
0.17a 26.03. alias implementiert, allerdings ohne $-Substitution.
0.17b 27.03. Die alias-Liste wird jetzt alphabetisch sortiert.
Alias-Definitionen dürfen unexpandierte Wildcards ent-
halten.
Bug bei rekursiven aliasen ausgebaut.
0.17c 31.03. Alias-Expansion dokumentiert.
Mehrfache Redirection eines Kanals (z.B. "ls >x >y") wird
jetzt richtig behandelt.
Den Namen der Environmentvariablen bei "A=B" und setenv werden
jetzt nach den gleichen Kriterien wie im Parser bei $xxx auf
Legalität geprüft.
02.04. Neue interne Variable "errorfile". Sollte ein File- oder
Devivename sein. Wenn gesetzt, wird für alle Kommandos Kanal
2 (StdAux) auf dieses File umgeleitet (wie 2>xx). Wenn der
Inhalt mit ">" anfängt wird angehängt (wie 2>>xx). Achtung:
Das muß man beim Setzen quoten! Für GNU, MWC usw. bietet
sich "set errorfile con:" an.
0.17d 06.04. Neues Kommando "setscrap" um das Scrap-Directory zu setzen.
Hängt "\SCRAP.*" selber an.
08.04. Kleinere interne Aufräumarbeiten.
09.04. EXIT.PRG wird nur noch von der ersten Mupfel gestartet.
isdir() verändert das aktuelle Directory auf anderen als dem
aktuellen Laufwerk nicht mehr (betrifft setscrap, cp, mv u.a.)
Setscrap weigert sich das Scrap-Directory auf nichtexistente
Directories zu setzen.
0.17f 11.04. Zugriff auf Directories auf nichtexistenten Drives führt nicht
mehr zu Division by Zero (Fehler in TOS 1.4: Versucht mal
Fsfirst("X:\\TEST",0x10) auszuführen...).
Neue interne Variable cwd; enthält den Namen des aktuellen
Directories.
0.17g 14.04. Mit Ctrl-S angehaltene Kommandos können mit Ctrl-C ab-
gebrochen werden.
Jede Menge wg. TC 1.10m geändert (DTA, DISKINFO etc.).
Mupfel benutzt jetzt wind_update(). Beim Start BEG_UPDATE,
vor Pexec() END_UPDATE, danach BEG_UPDATE, am Ende wieder
END_UPDATE (wegen Ärger mit RING.ACC).
15.04. Bug im Lineeditor gekillt (zu viele DELETEs konnten zu Illegal
Instruction führen).
16.04. Whereis weiss jetzt was von aliasen.
Wenn in der aktuellen Kommandozeile ewas drinsteht und man mit
Shift-UpArrow oder Shift-DownArrow scrollt, werden nur noch
diejenigen Historyentries angezeigt, die mit den Zeichen aus
der aktuellen Zeile beginnen.
Probleme mit Venus und gesetztem screensave beseitigt.
0.17h 20.04. Im Lineeditor wird bei Ctrl-C der Cursor jetzt eine Stelle
nach rechts bewegt.
21.04. Man kann jetzt wieder Programme ohne Extension aus dem Parent
Directory starten ("..\xx").
Default für $SUFFIX auf "prg;tos;mup" geändert.
Neue Option -a für pwd: Zeigt die aktuellen Directories auf
allen Drives an.
22.04. Environmentvariablen werden an eine zweite Mupfel korrekt
weitervererbt.
$SHELL wird beim Start nur gesetzt, wenn der shel_read-Aufruf
ein ausführbares Programm als Kommandonamen liefert.
0.17i 22.04. Wenn ein Kommando aus der Hashtabelle nicht mehr gefunden
werden kann, wird automatisch neu in $PATH gesucht und bei
Erfolg der Hasheintrag geändert.
23.04. Die Checksumme vor und nach Pexec() geht jetzt über das Text-
und Daten-Segment.
26.04. Checksumme über's Datensegment wieder ausgebaut (wegen
system()).
Neue Option -l (linefeed) für cat damit man auch UNIX-Text-
files (die nur LF als Zeilentrenner haben) ansehen kann.
Die Directorynamen bei pwd, pwd -a, $cwd et al werden jetzt in
Kleinbuchstaben ausgegeben.
29.04. Externe Programm die im aktuellen Directory liegen und nur
wegen dem Eintrag "." in $PATH gefunden werden werden jetzt
gehasht (Funktioniert wegen automatischem rehash).
Neue interne Variable "shellcount" enthält eine Zahl, die an-
gibt, wie oft Mupfel im Speicher ist.
Alle Funktionen, die rekursiv durch Directorybäume laufen
(cp -r, rm -r, tree, du) geben jetzt einen aussagekräftigen
Returncode zurück.
0.17j 30.04. Die Extension "MUP" muss nicht mehr als letzte in $SUFFIX
stehen.
Mit Alternate-XXX können jetzt auch die Zeichen eingegeben
werden, die sonst eine Sonderbedeutung hätten, z.B. Alt-3
(sonst wie Control-C) für den Pfeil nach rechts.
Environment auf verkettete Listen umgestellt.
01.05. "%n" in $PS1 tut's wieder.
"setenv" darf unexpandierte Wildcards haben.
0.17k 03.05. Bug gekillt: Wenn per system() andere Programme gestartet
wurden, wurde in die xArg-Struktur die Basepage der Mupfel
anstatt der des aufrufenden Prozesses eingetragen. Jetzt
wird der Wert aus sysbase->_run genommen.
05.05. Info kann jetzt von mehreren angegeben Laufwerken den freien
Platz anzeigen.
0.18a 07.05. Endlich! Mupfel und Venus sind ein Programm geworden. In der
Merged Version gibt's ein neues Kommando "venus", mit dem
man nach ALT-M in die Venus zurückkommt. "exit" und "quit"
haben die gleiche Wirkung.
08.05. Einige kleinere Bugs in der Merged Version gefixt.
Bei ersten ALT-M gibt's jetzt die Copyright-Meldung der
Mupfel.
09.05. In Batchfiles werden $1, $2 usw wieder korrekt expandiert.
0.18b 13.05. Alle mit Malloc() angeforderten Blöcke werden am Ende expli-
zit mit Mfree() wieder freigegeben.
14.05. Neue Option für $PRGNAME_EXT: Mit "D:[YN]" kann festgelegt
werden, ob vor Pexec() in das Directory des Programms ge-
wechselt werden soll.
0.18c 15.05. "touch -d" kann die Modifkationszeit jetzt auf Mitternacht
setzen.
Merged Version: Mupfel hat ein von Venus unabhängiges
"current directory" über mehrere ALT-M Aufrufe hinweg.
0.18d 20.05. Die Warnung "using xArg only" kommt nicht mehr bei system()-
Aufrufen.
22.05. Lösung für Volkmar's Reset-Problem. Lest bitte den Abschnitt
über system() im .DOC! (Keine Programmänderung)
0.18e 25.05. Merged Version: Aus MUPFEL.MUP können keine Programme mehr
gestartet werden, da Venus noch nicht initialisiert ist.
0.18f 29.05. Die Abfragen bei {cp|mv} -c und rm -i reagieren jetzt wieder
auf Kleinbuchstaben. Bei beiden gibt's ausserdem eine neue
Antwortmöglichkeit: A für All löscht/kopiert alle weiteren
Files ohne Abfrage.
03.06. Kommentare können jetzt irgendwo auf einer Zeile mit '#' be-
gonnen werden.
0.18g 04.06. Bug bei Aliasen, die ";" enthalten gekillt.
06.06. Merged Version: Der Start von GEM-Programmen aus der Mupfel
sieht jetzt schön aus, außerdem kann man wieder Programme
aus dem aktuellen Directory starten.
10.06. Versionsabfrage für wind_new() umgestellt: Jetzt wird
auf GEM == 1.04 || (GEM >= 1.3 && GEM != 2.1) getestet.
Optionen für "version" umgestellt: -g zeigt die GEM-Version
(aus global[0]) an, -d die GEMDOS-Version. -a zeigt alle
relevanten (d.h. TOS, GEM, GEMDOS, Mupfel) Versionsnummern
an.
Überflüssiges CR/LF bei "init" rausgeworfen.
0.18h 15.06. ls, tree und der Wildcardexpander kommen jetzt mit Files ohne
Basename (z.B. ".xyz") klar.
0.81i 17.06. Wenn die Variable HOME im MUPFEL.MUP nicht besetzt wird, wird
sie automatisch mit dem Namen des aktuellen Directories beim
Start besetzt.
Mupfel kann jetzt mit "-c commands" auf der Kommando-
zeile gestartet werden. Dabei wird kein Autoexec-File
ausgeführt, sondern nur die angegebenen Kommandos.
18.06. Merged Version: Man darf aus der Mupfel wieder TOS-Proramme
mit grauem Hintergrund starten (PRGNAME_EXT=b:y).
0.18j 26.06. Mupfel benutzt Line A nicht mehr. Screensave geht jetzt über
vro_cpyfm(), die Cursorposition wird mit vq_curaddress() er-
mittelt.
0.18k 29.06. Neues internes Kommando "blitmode". Siehe Doku.
"info" zeigt jetzt auch den belegten Platz, ausserdem passt
bei "info -a" alles schön untereinander.
0.19a 30.06. I/O-Errors bei File-Operationen sollten jetzt wesentlich
besser abgefangen werden, so daß jetzt die Alerts vom Critical
Error Handler nur noch einmal kommen dürfen. Bitte beobachten!
Testausgaben sind noch in dirstat() und setcurdir().
01.07. Kosmetische Änderungen bei "label" und "init".
"blitmode" liefert jetzt als Returncode den Blitterstatus.
Neue Option -f (force) für "setscrap". Ohne -f wird der Scrap-
Pfad nur gesetzt wenn noch keiner gesetzt war, mit -f wird in
jedem Fall umgesetzt.
0.19b 01.07. Fehler bei I/O Redirection ausgebaut. noclobber tat's nicht
richtig, und Redirection auf read-only-Files wurde nicht ver-
nünnftig behandelt. Bei Redirection von Handle 2 wegen error-
file wird noclobber jetzt ignoriert.
02.07. Noch mehr Bugs bei I/O Redirection ausgebaut.
03.07. Immer up to date! Nach dem neuesten Stand der Erkenntnis wird
bei "setscrap" jetzt "\SCRAP.*" nicht mehr angehängt.
05.07. Die Cursor-Probleme mit TOS-Programmen, die mit B:Y in
$PRGNAME_EXT gestartet wurden sollten behoben sein.
Neue Option -q (quiet) für setscrap. Dabei wird keine Fehler-
meldung ausgegeben, wenn der Scrap-Pfad bereits gesetzt war.
07.07. Der Screen-Buffer bei savescreen() wird jetzt auf eine 256er-
Grenze ausgerichtet (sieht mit BigScreen 1.2 besser aus).
Merged Version: Im MUPFEL.MUP ist "cd" verboten, da sonst die
Venus ihre Files nicht findet.
0.19c 14.07. Neue Env-Variable DRIVEMAP, enthält die Namen der Drives für
"info -a" und "pwd -a".
0.19d 25.07. Beim Start von Programmen wird jetzt nicht mehr überprüft, ob
ein File wirklich ein echtes TOS-Binary ist (anhand der Magic
Number im Header), sondern nur noch getestet ob die Extension
in $SUFFIX steht (Für Load-Time-Linking nützlich).
ACHTUNG: Wenn kurze Extensions (z.B. .O) erlaubt sein sollen,
*müssen* sie vor denjenigen in $SUFFIX stehen, die sie als
Teil enthalten. D.h. "TOS;O" geht nicht, "O;TOS" geht.
Wenn weder im MUPFEL.MUP noch vom Parent-Prozess PATH und/oder
SUFFIX gesetzt werden, werden jetzt Defaults ins Environment
geschrieben.
0.19e 28.07. Terminieren von Mupfel führt nicht mehr zu Abstürzen wenn
EXIT.PRG fehlt und $SHELL nicht gesetzt ist.
Merged Version: Fehlermeldung wegen fehlendem MUPFEL.MUP
als Alert-Box.
0.20a 04.08. Bösen Design-Fehler gekillt: Die Kommandos auf Zeilen
wie "x;y;z" wurden teilweise in der falschen Reihenfolge
ausgeführt, speziell in Kombinationen mit Batchfiles. Jetzt
geht's brav von links nach rechts und ordentlich geschachtelt.
Thanx, Steve.
Bei cp und mv wird, wenn die letzte Angabe nur ein Drivename
ist, in das aktuelle Directory auf diesem Drive und nicht mehr
in Rootdirectory kopiert/verschoben.
05.08. Programme werden jetzt immer mit einem nicht-blinkenden Cursor
gestartet.
$COLUMNS kann jetzt gefahrlos auf unsinnige (d.h. zu kleine)
Werte gesetzt werden.
Batchfiles können mit Ctrl-C abgebrochen werden.
Per system() können jetzt wieder Batchfiles aufgerufen werden.
0.20b 07.08. I/O-Errors bei der Pfadsuche werden jetzt vernünftig abge-
fangen.
Pwd kann jetzt das aktuelle Directory eines bestimmten Drive
anzeigen (mit "pwd c:").
0.30a 20.08. Mal wieder 'ne Nachtschicht. Die gemergte Version hat jetzt
Window für die Mupfel, in dem auch die von ihr gestarteten
TOS-Programme laufen. Bei der Gelegenheit geändert:
MUPFEL.MUP wird nur noch von der ersten gestarteten Mupfel
ausgeführt. $SHELL, $COLUMNS und $ROWS werden nur dann besetzt
wenn sie vom Parent nicht geerbt wurden.
21.08. Jede Menge Bugs in den Window-Routinen gefixt. Lineeditor im
Window deutlich verschnellert.
0.30b 22.08. Hässliche Verzögerung nach "Return" in einer Kommandozeile mit
vielen Wildcards gekillt.
0.99 23.08. Ein historisches Datum: Die "Merged Version" hat einen Namen
bekommen! "Gemini" ist in die letzte Testphase gegangen, auf
der Atari-Messe wird die Freigabe von 1.0 angekündigt.
Mit Steve bis in die Nacht gehackt. Tonnenweise Bugs in Arnd's
VT-52 Emulator gekillt. Lineeditor im Window noch schneller.
XBRA-Id für Gemini ist "GMNI". GEMINI.FNT (6*10, ID=97) ge-
bastelt. Die "negativen" Line-A-Variablen für die Größe des
Textbildschirms werden jetzt entsprechend der Windowgröße in
Gemini gesetzt. Bug beim Löschen von Zeilen per "ESC" im Line-
editor gefixt (war in Mupfel nie aufgetreten).
0.99a 24.08. Mupfel: Bug beim Historyscrollen gefixt (war Seiteneffekt von
Änderungen wg. Gemini).
"shellcount" zählt jetzt die Mupfel- und Gemini-Einträge in
_shell_p.
Wenn MUPFEL.MUP fehlt, gibt's in Gemini keine Fehlermeldung
mehr.
Neue Option -i (interactive) für cp und mv.
Bock bei rename und backup gekillt: Alte Einstellungen von
cp/mv blieben erhalten.
0.99b 25.08. Für rename und backup gibt's jetzt analog zu cp die
Optionen -i,-v, und -c.
0.99c 28.08. Gemini: I/O Redirection von internen Kommandos geht
wieder.
GEMINI.FNT um die Zeichen 0-32, fast alle europäischen
Sonderzeichen und um @ erweitert.
Backspacen am rechten Bildschirm/Windowrand geht wieder
richtig.
0.99d 14.09. cat von Tastatur kann jetzt ausser mit Control-D auch
noch mit UNDO abgebrochen werden.
16.09. Gemini: Fehler bei Zeichenausgabe von internen Kommandos aus-
gebaut.
0.99e 17.09. Batchfiles werden jetzt auch richtig bearbeitet, wenn die
letzte Zeile nicht mit CR/LF aufhört. (Editoren die solche
Files erzeugen gehören verboten!)
Neue Option -a (archive) für cp: Dabei werden nur Files ko-
piert, die das Archiv-Bit gesetzt haben, nach dem Kopieren
wird es bei den Source-Files zurückgesetzt.
20.09. Bug bei "cp -r" ausgebaut: "cp -r x:\ y:\" funktioniert jetzt.
"du" ohne Argumente entspricht "du .".
Nochmal "cp -r": Funktioniert jetzt auch, wenn die benötigten
Directories bereits existieren.
21.09. Neue interne Variable "drivelist": enthält die Namen aller
angeschlossenen Drives.
Gemini: Neue Option für $PRGNAME_EXT: Über "W:[YN]" kann ge-
steuert werden, ob die Programme im Console-Window laufen so-
llen oder nicht. Wenn nicht, wird beim Programmende auf einen
Tastendruck gewartet. Default für TOS-Programme ist W:Y, bei
GEM-Programmen hat der Switch keine Wirkung. (Das ganze gilt
logischerweise nur für Programme die aus dem Console-Window
gestartet werden!).
cp gibt jetzt eine ordentliche Meldung aus, wenn beim Kopieren
die Zieldisk voll wird.
Neue Option für init: -y (yes). Stellt keine Frage mehr, son-
den initialisiert die Disk sofort.
Bug bei "version -g" gefixt: Die GEM-Versionsnummer wird trotz
des Fehlers in TCGEMLIB (das control-Array ist nur 11 statt 12
ints groß) immer richtig angezeigt.
"version -t" zeigt jetzt auch das Landeskennzeichen der be-
nutzten TOS-Version (USA,FRG,FRA,UK usw.) an.
0.99f 22.09. Neues Kommando "shrink". Damit kann man zu Testzwecken den
zur Verfügung stehenden Speicher verkleinern.
24.09. Interner Kram. /* Kommentare! Wow! */
26.09. Neue Option -h für version. Zeigt die Versionsnummer eines
AHDI 3.01-kompitablen Treibers an, oder mangels eines solchen
einen entsprechenden Kommentar.
27.09. Gemini: In $PRGNAME_EXT wird der Paramter C:[yn] wieder korrekt
ausgewertet.
0.99g 28.09. Gemini: TOS-Programme vom Desktop gestartet laufen jetzt
im Console-Window.
Bug in system() behoben (Batchfiles wurden manchmal nicht
korrekt behandelt).
Neues Kommando "pause". Wartet auf Tastendruck. Wenn Argumente
angegeben sind, werden diese zuerst wie bei echo ausgegeben,
allerdings immer ohne cr/lf am Schluss.
Die einzelnen Werte in $PATH, $SUFFIX, $CDPATH und
$PRGNAME_EXT dürfen jetzt wahlweise durch Komma oder Semikolon
separiert sein.
29.09. Workaround für den Handle-Bug im VDI.
Batchfiles beeinflussen jetzt das aktuelle Directory von
Mupfel/Gemini nicht mehr (auch wenn sie "cd" enthalten).
Die aktuellen Directories auf anderen als dem aktuellen Drive
können allerdings sehr wohl beeinflusst werden.
30.09. TOS-Progamme, die von Mupfel gestartet werden, haben jetzt
einen fast kompitablen Critical-Error-Handler wie im ROM
(courtesy Julian). Logisch mit XBRA.
Endlich sollte der Handle-Bug endgültig umgangen sein: Alle
Workstations (6 Stück! Wer hat mehr?) bleiben jetzt offen
wenn Programme gestartet werden.
0.99h 02.10. Noch 'nen Bug bei "cp -rv" gefixt (War nur Optik).
Weder ls noch der Wildcard-Expander betrachten jetzt Hidden
Files. Ls kann sie mit der Option -h aber doch anzeigen.
Bei cmd1;cmd2 wurde zwischendrin ein überflüssiges CR/LF aus-
gegeben, jetzt nicht mehr.
03.10. Interne Umarbeitung der Help-Routinen, dadurch ca. 2K an Code
und Daten eingespart.
Das Kommando "info" heisst jetzt "df" (disk free).
Das Kommando "quit" ist gestorben.
Bei tree darf das Filespec-Argument jetzt ebenfalls UNIX-
Wildcards enthalten.
0.99i 04.10. I/O Redirection umgearbeitet, nochmal ca. 1K Code gespart.
Die Ausgaben von Batchfiles können jetzt umgelenkt werden!
Wenn ein einzelnes Kommando im Batchfile was anderes will,
geht das logischerweise auch.
Wieso sagt mir eigentlich keiner, daß das noch nie ging?